package 初级.回文数;


public class Solution {

    public static void main(String[] args) {
        System.out.println(isPalindrome2(11));
    }

    //12ms
    public static boolean isPalindrome(int x) {
        if (x>=0){
            int old=x;
            int res=0;
            int temp=0;
            while (x!=0){
                temp=x%10;
                res=res*10+temp;
                x/=10;
            }
            System.out.println(res);
            if (res==old){
                return true;
            }else {
                return false;
            }
        }else {
            return false;
        }
    }

    //9ms（参考）
    //每次取最高位和最低位比较
    public static boolean isPalindrome2(int x) {
        if (x < 0) return false;

        //计算他是几位数
        int temp = 1;
        //要>=10，因为如果是1001，待会循环后最大位数为100,不是1000
        while (x / temp >= 10) {
            temp *= 10;
        }

        //每次取最高位和最低位判断是否相等
        while (x!=0){
            if (x/temp != x%10){//最高位和最低位不等
                return false;
            }

            //取高位用/，取低位用%
            //相等就去除最高和最低，temp/100，去掉2位
            x=x%temp;//取低位
            x=x/10;//取高位
            temp/=100;
        }
        return true;
    }
}
